Function.prototype.bind2 = function (context, args) {
  if (typeof this !== "function") {
    throw new Error("this must be a function");
  }
  let self = this;
  let fnbound = function () {
    // 使用apply的方法 绑定一下我的方法这样
    self.apply(
      this instanceof self ? this : context,
      args.concat(Array.prototype.slice.call(arguments))
    );
  };
  if (this.prototype) {
    // 如果你想要挂载默写原型的方法就是直接使用 object.create 不需要那个 const实现的之类的方法这样的
    fnbound.prototype = Object.create(this.prototype);
  }
  return fnbound;
};
